#ifndef ROOM_H
#define ROOM_H

#include <vector>
#include <string>
#include "Inventory.h"
#include "Item.h"

using namespace std;

class Room
{
public:
	Room();
    Room(const string& rName, const string& rDescription);
    Room(const string& rName, const string& rDescription, const Inventory& items);
    ~Room();
    void OnEnter();
	//Title Mutators
	string getTitle();
	void setTitle(string value);
	//Description Mutators
	string getDescription();
	void setDescription(string value);
	//Inventory Mutators
	Inventory getInventory();
	void setInventory(Inventory inv);
	//LockedExit Mutators
	vector<string> getLockedExits();
	void setLockedExits(vector<string> exits);
	//HiddenExit Mutators
	vector<string> getHiddenExits();
	void setHiddenExitrs(vector<string> exits);
	//NumHiddenExit Mutators
	int getNumHiddenExits();
	void setNumHiddenExits(int value);



    Item* TakeItem(const string& itemName);
    void GiveItem(const Item& item);
    string& GetInventory();
    string& GetName();
    string& GetDescription();
	Item* GetItem(const string& itemName);
	bool CanExit(const string& direction);
private:
    string* name;
    string* description;
    Inventory* inventory;
};

#endif